2
2
.
.
1
1
.
.
5
5
H
H
T
T
T
T
P
P
R
R
e
e
q
q
u
u
e
e
s
s
t
t
P
P
a
a
r
r
a
a
m
m
e
e
t
t
e
e
r
r
s
s
-
-
G
G
e
e
t
t
I
I
n
n
f
f
o
o
[
[
G
G
]
]
This tutorial shows how to use Filter to get HTTP Request/Response Parameters.
Application Schema [Results]
Spring Boot Starters
GROUP
DEPENDENCY
DESCRIPTION
Web
Spring Web
Enables: Controller Annotations, Tomcat Server
P
P
r
r
o
o
c
c
e
e
d
d
u
u
r
r
e
e
Create Project: springboot_filter_gethttprequestresponseparameters (add Spring Boot Starters from the table)
Create Package: controllers (inside main package)
– Create Class: MyController.java (inside controllers package)
Create Package: filters (inside main package)
– Create Class: MyFilter.java (inside controllers package)
MyController.java
package com.ivoronline.springboot_filter_gethttprequestresponseparameters.controllers;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MyController {
@ResponseBody
@RequestMapping("/Public/Hello")
public String publicHello() {
System.out.println("Controller: Code from Controller");
return "Hello from Controller";
}
}
MyFilter
MyController
Request
Response
http://localhost:8080/Hello
Request
Response
hello()
MyFilter.java
package com.ivoronline.springboot_filter_gethttprequestresponseparameters.filters;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
@Component
public class MyFilter extends OncePerRequestFilter {
@Override
public void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
throws IOException, ServletException {
//LOG HTTP REQUEST PARAMETERS: http://localhost:8080/Hello?user=myuser&password=mypassword
System.out.println("\nREQUEST PARAMETERS: =======================================================");
System.out.println("RequestURL: " + request.getRequestURL ()); //http://localhost:8080/Public/Hello
System.out.println("RequestURI: " + request.getRequestURI ()); // /Public/Hello
System.out.println("ServletPath: " + request.getServletPath()); // /Public/Hello
System.out.println("QueryString: " + request.getQueryString()); // user=myuser&password=mypassword
System.out.println("Parameter: " + request.getParameter ("user"));// myuser
System.out.println("Method: " + request.getMethod ()); // GET
System.out.println("Protocol: " + request.getProtocol ()); // HTTP/1.1
System.out.println("ServerName: " + request.getServerName ()); // localhost
System.out.println("ServerPort: " + request.getServerPort ()); // 8080
//DIVIDES HTTP REQUEST AND RESPONSE CODE
chain.doFilter(request, response);
//LOG HTTP RESPONSE PARAMETERS
System.out.println("\nRESPONSE PARAMETERS: =======================================================");
System.out.println("Status: " + response.getStatus()); //200
System.out.println("ContentType: " + response.getContentType()); //text/html;charset=UTF-8
}
}
R
R
e
e
s
s
u
u
l
l
t
t
s
s
http://localhost:8080/Hello?user=myuser&password=mypassword
Console
REQUEST PARAMETERS: =======================================================
RequestURL: http://localhost:8080/Hello
RequestURI: /Hello
ServletPath: /Hello
QueryString: user=myuser&password=mypassword
Parameter: myuser
Method: GET
Protocol: HTTP/1.1
ServerName: localhost
ServerPort: 8080
RESPONSE PARAMETERS: =======================================================
Status: 200
ContentType: text/html;charset=UTF-8
Application Structure
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>